import LuckyExcel from 'luckyexcel'
const w = window as any

/**
 * 将 Excel 文件的缓冲区数据转换为 JSON 格式的工作表数据
 * @param param - 包含 Excel 文件缓冲区数据的对象
 * @param param.buffer - Excel 文件的缓冲区数据
 * @returns 返回一个 Promise，当转换成功时解析为包含工作表数据的数组，失败时拒绝并返回错误信息
 */
export function getXlsxJson({ buffer }: any): any {
	// 返回一个 Promise 对象，用于异步处理 Excel 文件转换
	return new Promise((resolve, reject) => {
		// 使用 LuckyExcel 库将 Excel 缓冲区数据转换为 JSON 格式
		LuckyExcel.transformExcelToLucky(buffer, (exportJson: any) => {
			// 检查转换后的 JSON 数据中是否包含工作表信息
			if (exportJson.sheets == null || exportJson.sheets.length == 0) {
				// 如果没有工作表信息，拒绝 Promise 并返回错误信息
				reject('文件读取失败!')
				return
			}
			// 如果转换成功，解析 Promise 并返回工作表数据
			resolve(exportJson.sheets)
		})
	})
}

export function luckysheetPreviewXlsx({ data, container }: { data: any[]; container: string }) {
	if (!w.luckysheet) {
		console.error('需要引入luckysheet相关插件')
		return
	}
	w.luckysheet.destroy()
	w.luckysheet.create({
		container, // 设定DOM容器的id
		data, //表格内容
		showtoolbar: false, // 是否显示工具栏
		showinfobar: false, // 是否显示顶部信息栏
		showstatisticBar: false, // 是否显示底部计数栏
		sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
		// allowEdit: false, // 是否允许前台编辑
		enableAddRow: false, // 是否允许增加行
		enableAddCol: false, // 是否允许增加列
		sheetFormulaBar: false, // 是否显示公式栏
		enableAddBackTop: false, //返回头部按钮
	})
}
